<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        function Cat(name){
            this.name=name;
            this.show=function(){};  //实例中，独享，每个实例的都不相同
        }

        Cat.prototype.age=5;
        Cat.prototype.name="小猫";
        Cat.prototype.hello=function(){};  //原型中，共享，每个实例都引用该成员

        var cat=new Cat("tom");
        console.log(cat);
        console.log(cat.age);
        console.log(cat.name);

        //1、在访问对象的成员时首先查找对象本身的成员，如果不存在，则查找__proto__中的成员，如果不存则继续查找__proto__依此类推，这就是原型链
        //2、自身成员的优先级高于原型链中的优先级，就近原则
        //3、原型中的成员是共享的，而实例本身的成员是独享的

        var cat2=new Cat("大猫");

        console.log(cat.show===cat2.show);
        console.log(cat.hello===cat2.hello);
    </script>
</body>
</html>